#!/usr/bin/env node

const fs = require('fs')
const path = require('path')
const inquirer = require('inquirer')
const ejs = require('ejs')

// 发起用户询问
inquirer.prompt([{
    type: "input", // 询问方式
    name: "name", // 问题返回值的键
    message: "Project name?" // 给用户的提示
  }])
  // then中拿到这个问题，用户接受到的答案
  .then(anwsers => {
    console.log(anwsers);
    // 根据用户回答的结果生成文件

    // 模版目录
    const tmplDir = path.join(__dirname, 'templates')
    // 输出的目标目录
    const destDir = process.cwd()
    // 获取模版目录下有哪些文件，把这些文件全部输出到目标目录
    fs.readdir(tmplDir, (err, files) => {
      if (err) throw err
      files.forEach(file => {
        console.log(file); // 相对路径
        // 通过模版引擎渲染相对路径所对应的文件
        ejs.renderFile(path.join(tmplDir, file), anwsers, (err, result) => {
          if (err) throw err
          console.log(result);
          // 将最终的结果，通过文件写入的方式，写入到目标目录
          fs.writeFileSync(path.join(destDir,file),result)
        })
      })
    })
  })